package com.sky.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.sky.dto.*;
import com.sky.entity.Orders;
import com.sky.result.Result;
import com.sky.vo.*;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author xieminghui
 * @since 2023-11-16
 */
public interface IOrdersService extends IService<Orders> {

    Result<OrderStatisticsVO> statisticsOrders();

    Result<OrderVO> findOrderById(Long id);

    Result<OrderPageVO> findOrderPage(OrdersPageQueryDTO ordersPageQueryDTO);

    Result<String> cancelOrder(OrdersCancelDTO ordersCancelDTO);

    Result<String> rejectionOrder(OrdersRejectionDTO ordersRejectionDTO);

    Result<String> confirmOrder(OrdersConfirmDTO ordersConfirmDTO);

    Result<String> deliveryOrder(Long id);

    Result<String> completeOrder(Long id);

    Result<String> undefinedOrder(UndefinedOrderDTO undefinedOrderDTO);

    Result<OrderPaymentVO> payment(OrdersPaymentDTO ordersPaymentDTO);

    Result<OrderVO> orderDetails(Long id);

    Result<String> userCancel(Long id);

    Result<UserOrdersVO> historyOrders(OrderHistoryDTO orderHistoryDTO);

    Result<String> repetition(Long id);

    Result<String> reminder(Long id);

    Result<OrderSubmitVO> addOrder(Orders orders);

    void updateOrderStartus(String outTradeNo);
}
